package br.edu.faculdadeprojecao.mb;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.persistence.EntityManager;

import br.edu.faculdadeprojecao.DAO.DisponibilidadeDAO;
import br.edu.faculdadeprojecao.infra.JPAUtil;
import br.edu.faculdadeprojecao.modelo.Disponibilidade;

@ViewScoped
@ManagedBean
public class DisponibilidadeBean {
	private Disponibilidade disponibilidade = new Disponibilidade();
	private List<Disponibilidade> disponibilidades = new ArrayList<Disponibilidade>();
	private Integer professorId;
	private Integer disciplinaId;
	
	public Integer getProfessorId() {
		return professorId;
	}

	public void setProfessorId(Integer professorId) {
		this.professorId = professorId;
	}

	public Integer getDisciplinaId() {
		return disciplinaId;
	}

	public void setDisciplinaId(Integer disciplinaId) {
		this.disciplinaId = disciplinaId;
	}

	public Disponibilidade getDisponibilidade() {
		return disponibilidade;
	}

	public void setDisponibilidade(Disponibilidade disponibilidade) {
		this.disponibilidade = disponibilidade;
	}

	public List<Disponibilidade> getDisponibilidades() {
		if(disponibilidades == null){
			EntityManager em = new JPAUtil().getEntityManager();		
			DisponibilidadeDAO dao = new DisponibilidadeDAO(em);
			disponibilidades = dao.lista();
			em.close();			
		}
		return disponibilidades;
	}

	public void setDisponibilidades(List<Disponibilidade> disponibilidades) {
		this.disponibilidades = disponibilidades;
	}

	public void grava(){
		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();
		DisponibilidadeDAO disponibilidadeDAO = new DisponibilidadeDAO(em);
		disponibilidade.setAtivo(true);
		if(disponibilidade.getId()==null){
			disponibilidadeDAO.salva(disponibilidade);
		}else{
			disponibilidadeDAO.altera(disponibilidade);
		}
		
		em.getTransaction().commit();
		em.close();
		disponibilidade = new Disponibilidade();
	}
	
	public void remove(){
		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();
		
		DisponibilidadeDAO dao = new DisponibilidadeDAO(em);
		dao.delete(disponibilidade);
		
		em.getTransaction().commit();
		em.close();
		disponibilidade = new Disponibilidade();
	}

}
